#ifndef UUID_C0368AD3F28740FB0D458CA2E5E31F30
#define UUID_C0368AD3F28740FB0D458CA2E5E31F30

/*
  We are only using DX3 in here, no need to polute the namespace - davidv
*/
#undef DIRECTSOUND_VERSION
#define DIRECTSOUND_VERSION 0x0300
#include <dsound.h>

typedef struct
{
    HINSTANCE hInstance_;
    
    HRESULT (WINAPI *DllGetClassObject)(REFCLSID , REFIID , LPVOID *);

    HRESULT (WINAPI *DirectSoundCreate)(LPGUID, LPDIRECTSOUND *, LPUNKNOWN);
    HRESULT (WINAPI *DirectSoundEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
    HRESULT (WINAPI *DirectSoundEnumerateA)(LPDSENUMCALLBACKA, LPVOID);

    HRESULT (WINAPI *DirectSoundCaptureCreate)(LPGUID, LPDIRECTSOUNDCAPTURE *, LPUNKNOWN);
    HRESULT (WINAPI *DirectSoundCaptureEnumerateW)(LPDSENUMCALLBACKW, LPVOID);
    HRESULT (WINAPI *DirectSoundCaptureEnumerateA)(LPDSENUMCALLBACKA, LPVOID);
} sfx_ds_entrypoints_t;

extern sfx_ds_entrypoints_t sfx_ds;

void sfx_ds_init_ds_entrypoints(void);
void sfx_ds_deinit_ds_entrypoints(void);

#endif // UUID_C0368AD3F28740FB0D458CA2E5E31F30
